home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MACD 5
/
MACD 5.bin
/
workbench
/
tools
/
czesc_3
/
multiuser
/
extern
/
amilock1.0
/
source
/
login.bak
< prev
next >
Wrap
Text File
|
1994-03-07
|
3KB
|
104 lines
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <exec/ports.h>
#include <exec/memory.h>
#include <exec/types.h>
#include <exec/interrupts.h>
#include <devices/input.h>
#include <intuition/intuition.h>
#include <proto/all.h>
#include <clib/exec_protos.h>
#include <clib/alib_protos.h>
#include <clib/intuition_protos.h>
#include "headers/global.h"
#include "headers/deamon.h"
#include "headers/talkto_proto.h"
/*#include "headers/login.h"*/
#include "headers/error_proto.h"
static const char __Version[]=LOGINVERST;
extern void ButtonSwap(void);
void INITKillButtons(void);
void KillButtons(void);
void FINALRestoreButtons(void);
void RestoreButtons(void);
struct IOStdReq *inputReqBlk;
struct MsgPort *inputPort;
struct Interrupt *inputHandler;
UBYTE device;
void KillButtons()
{
inputHandler->is_Code = ButtonSwap;
inputHandler->is_Data=NULL;
inputHandler->is_Node.ln_Pri=100;
inputHandler->is_Node.ln_Name=LOGINVERST;
inputReqBlk->io_Data=(APTR)inputHandler;
inputReqBlk->io_Command=IND_ADDHANDLER;
DoIO((struct IORequest *)inputReqBlk);
}
void INITKillButtons()
{
if (inputPort = CreatePort(NULL,NULL)) {
if (inputHandler=AllocMem(sizeof(struct Interrupt),MEMF_PUBLIC+MEMF_CLEAR)){
if (inputReqBlk=(struct IOStdReq *)CreateExtIO(inputPort,sizeof(struct IOStdReq))) {
if (!(device = OpenDevice("input.device",NULL,(struct IORequest *)inputReqBlk,NULL))) {
inputHandler->is_Code = ButtonSwap;
inputHandler->is_Data=NULL;
inputHandler->is_Node.ln_Pri=100;
inputHandler->is_Node.ln_Name=LOGINVER;
inputReqBlk->io_Data=(APTR)inputHandler;
inputReqBlk->io_Command=IND_ADDHANDLER;
DoIO((struct IORequest *)inputReqBlk);
}
else {
Error("Could not open input.device");
DeleteExtIO((struct IORequest *)inputReqBlk);
exit(10);
}
}
else {
Error("Could not create IORequest");
FreeMem(inputHandler,sizeof(struct Interrupt));
exit(10);
}
}
else {
Error("could not allocate interrupt struct Memory");
DeletePort(inputPort);
exit(10);
}
}
else {
Error("could not create message port");
exit (10);
}
}
void RestoreButtons()
{
inputReqBlk->io_Data=(APTR)inputHandler;
inputReqBlk->io_Command=IND_REMHANDLER;
DoIO((struct IORequest *)inputReqBlk);
}
void FINALRestoreButtons()
{
inputReqBlk->io_Data=(APTR)inputHandler;
inputReqBlk->io_Command=IND_REMHANDLER;
DoIO((struct IORequest *)inputReqBlk);
DeleteExtIO((struct IORequest*)inputReqBlk);
FreeMem(inputHandler,sizeof(struct Interrupt));
DeletePort(inputPort);
}